
alter rollback segment SEGMENT_NAME offline;

drop rollback segment SEGMENT_NAME;

create rollback segment SEGMENT_NAME 
tablespace RBS;

alter rollback segment SEGMENT_NAME online;

rollback_segments     = (r0,r1,r2)

commit;

set transaction use rollback segment ROLL_BATCH;
insert into TABLE_NAME
select * from DATA_LOAD_TABLE;

commit;

REM*  Polecenie commit kasuje przypisanie segmentu wycofania.
REM*  Niejawne zatwierdzenia, takie jak te bdce rezultatem polecenia 
REM*  DDL rwnie kasuj oznaczenie segmentu wycofania.

insert into TABLE_NAME select * from SOME_OTHER_TABLE;
select * from DBA_SEGMENTS
 where Segment_Type = 'ROLLBACK';


select N.Name,             /* nazwa segmentu wycofania */
       S.OptSize           /* optymalny rozmiar segmentu wycofania */    
from V$ROLLNAME N, V$ROLLSTAT S
where N.USN=S.USN;


alter rollback segment R1 shrink to 15M;

alter rollback segment R1 shrink;


DROP TABLE stats$begin_roll;
CREATE TABLE stats$begin_roll
AS SELECT * FROM v$rollstat WHERE 0 = 1;


DROP TABLE stats$end_roll;
CREATE TABLE stats$end_roll
AS SELECT * FROM stats$begin_roll;

INSERT INTO stats$begin_roll SELECT * FROM v$rollstat;


INSERT INTO stats$end_roll SELECT * FROM v$rollstat;

CREATE TABLE stats$roll
AS SELECT  e.usn undo_segment,
        e.gets-b.gets trans_tbl_gets,
   e.waits-b.waits trans_tbl_waits,
   e.writes-b.writes undo_bytes_written,
   e.rssize segment_size_bytes,
        e.xacts-b.xacts xacts,
   e.shrinks-b.shrinks shrinks,
        e.wraps-b.wraps wraps
   FROM stats$begin_roll b, stats$end_roll e
        WHERE e.usn = b.usn;


select
   N.Name,                      /* nazwa segmentu wycofania */
   S.RsSize                     /* rozmiar segmentu wycofania */
from V$ROLLNAME N, V$ROLLSTAT S
where N.USN=S.USN;


REM  Uytkownicy w segmentach wycofania  
REM
column rr heading 'SegmentWycofania' format a18
column us heading 'NazwaUytkownika' format a15
column os heading 'Uytkownik OS' format a10
column te heading 'Terminal' format a10
select R.Name rr,
       nvl(S.Username,'brak transakcji') us,
       S.Osuser os,
       S.Terminal te
  from V$LOCK L, V$SESSION S, V$ROLLNAME R
 where L.Sid = S.Sid(+)
   and trunc(L.Id1/65536) = R.USN
   and L.Type = 'TX'
   and L.Lmode = 6
order by R.Name
/

select
   N.Name,                      /* nazwa segmentu wycofania */
   S.Writes                     /* bajty zapisane do chwili obecnej */
from V$ROLLNAME N, V$ROLLSTAT S
where N.USN=S.USN;


set transaction use rollback segment SEGMENT_NAME

alter tablespace RBS
default storage
(initial 125K next 125K minextents 18 maxextents 249);


create rollback segment R4 tablespace RBS
   storage (optimal 2250K);
alter rollback segment R4 online;


Select Sessions_Highwater from V$LICENSE;

